1.9 Andere Zeichen
 
Was ist aber nun, wenn ich den Namen in der ersten Zeile, das Heißgetränk in der zweiten Zeile haben möchte? Wenn ich also einen Zeilenumbruch zwischen die beiden Zeilen bekommen möchte? Einfach (Enter) drücken geht nicht, da sonst eine neue Zeile eingefügt würde. Also muss das Zeichen für (Enter) eingegeben werden. In der letzten Visual Basic-Version hieß es »vbCr«. »Cr« steht dabei für »carriage Return«, also Wagenrücklauf. Das funktioniert immer noch. Man kann also schreiben:
MessageBox.Show("Achtung: " & txtName.Text & _
vbCR & "Jetzt gibt es Kaffee!")
Es macht in einem Meldungsfenster keinen Unterschied - man könnte auch »crLf« eingeben. »Lf« steht für »Linefeed«. Oder beide zusammen: »vbCrLf«. Ins neue VB.NET übersetzt heißt dieser Befehl
Environment.NewLine
Oder ganz exakt:
System.Environment.NewLine
Er ist natürlich etwas umständlich zu tippen, hat aber den großen Vorteil, dass er in jedem System funktioniert, und das sollte doch das Ziel eines VB-Projekts sein. Übrigens: Wenn Sie die ASCII-Tabelle im Kopf haben, dann können Sie auch die Funktion »Chr« verwenden. (Enter) hat den Wert 34, »Lf« hat 10, man kann also auch schreiben:
Chr(13)
oder
Chr(10)
Abbildung 1.19
Der Umbruch funktioniert.
1.9.1 Noch ein Wort zum Code-Tippen
 
Wenn Sie die Beispiele abtippen (oder andere Beispiele eingeben), dann müssen Sie ein paar Kleinigkeiten beachten.
Groß- und Kleinschreibung sind in VB.NET austauschbar. Es ist also gleichgültig, ob Sie messagebox, MESSAGEBOX oder MessageBox schreiben. Ich erwähne das deshalb, weil es nicht nur meine eigene Faulheit beschreibt. Es hat noch eine andere wichtige Funktion. Wenn ich Code eingebe, dann tippe ich die bekannten Befehle alle in Kleinbuchstaben. Denn sobald ich die Zeile verlasse, werden die Syntax und die einzelnen Befehle überprüft. Ein Befehl wie »messagebox« wird als korrekt erkannt und in die richtige Schreibweise gedreht. »messagebxo« dagegen führt beim Verlassen der Zeile nicht nur dazu, dass der Befehl mit einer Schlangenlinie versehen wird, es werden auch nicht - anders als erwartet - die Kleinbuchstaben in Groß- und Kleinbuchstaben verwandelt. Ich persönlich finde das eine prima Hilfe, mit der ich schon viele Tippfehler schnell gefunden habe.
Leerzeichen sind ein kleines Problem. Merkregel: Lieber eins zu viel als eins zu wenig. Sind zu viele Leerzeichen in einer Zeile, dann löscht das Programm die überflüssigen beim Verlassen der Zeile. Also besser:
messagebox.show ( "Achtung: " & txtName.Text & "Jetzt gibt es Kaffee!" )
als folgende Zeile:
messagebox.show("Achtung: "&txtName.Text&"Jetzt gibt es Kaffee!")
Denn diese führt zu einem Fehler, weil VB.NET »denkt«, dass
txtName.Text&"Jetzt gibt es Kaffee!"
ein Ausdruck ist. Das Programm »glaubt«, dass das kaufmännische »und« Teil des Inhalts des Textfelds ist. Auf den ersten Blick sieht dies ziemlich doof aus, es steckt aber Methode dahinter.
1.9.2 Ein Wort zur Syntax
 
Wörter mit einem »x« und einem »y« sind klasse. Sie sind meistens griechisch, kein Mensch kennt sie und man kann sie überall verwenden, das macht viel her! Nein, im Ernst: Der Begriff »Syntax« ist bekannt. Er bedeutet nichts anderes als die Reihenfolge der Elemente. In einem Satz dürfen Sie sagen:
»Es war eine lange, stürmische Nacht.«
oder
»Eine lange, stürmische Nacht war es.«
Allerdings ist folgende Reihenfolge nicht möglich:
»lange Nacht, stürmische es war.«
Zwar kann man den Satz mit ein wenig Mühe noch verstehen, aber es ist anstrengend. Deshalb reden und schreiben wir lieber »korrektes« Deutsch und programmieren »korrektes« VB.NET.
In einer Programmiersprache bedeutet »Syntax« die Abfolge von bestimmten Elementen. Das heißt:
Nach der Funktion MessageBox.Show muss eine Klammer stehen. Zuerst »(« und am Ende »)«. Dazwischen steht der »text«, der gemeldet wird. Er ist notwendig, ohne ihn geht es nicht. Optional, das heißt möglich, aber ohne Zwang, können die übrigen Parameter stehen. Und wenn, dann bitte schön in dieser Reihenfolge. Soll keine »caption« angegeben werden, dann könnte man dies folgendermaßen schreiben:
MessageBox.Show _
("Achtung: Jetzt gibt es Kaffee!", ,
MessageBoxButtons.YesNoCancel, _
MessageBoxIcon.Warning,)
Der Parameter fehlt einfach. Die Reihenfolge ist festgelegt. Nun gibt es allerdings Funktionen mit sehr vielen Parametern. Damit man nicht umständlich viele Kommata hintereinander schreiben muss, gibt es noch eine zweite Schreibweise dafür:
MessageBox.Show(text:="Jetzt gibt es Kaffee!", _
caption:="Meine Kaffeemaschine", _
buttons:=MessageBoxButtons.YesNoCancel, _
Icon:=MessageBoxIcon.Information, _
defaultbutton:=MessageBoxDefaulButton.Buttons2, _
options:=MessageBoxOptions.DefaultDesktopOnly)
Das ist zwar viel mehr Tipparbeit, aber deutlich angenehmer zu lesen.
Apropos angenehmer zu lesen: In VB.NET ist eine Zeile ein Befehl oder ein Befehl eine Zeile. Da die Codezeilen hier im Buch nicht immer in eine Zeile passen, habe ich sie häufig umgebrochen. Dies können Sie auch tun, wenn Sie die Beispiele aus dem Buch nachtippen, Sie können die Befehle aber auch in einer Zeile schreiben.
|